home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d12
/
aeclipd.arc
/
AEDIAL.C
< prev
next >
Wrap
C/C++ Source or Header
|
1989-10-14
|
3KB
|
138 lines
#include "dos.h"
#include "extend.h"
#include "fcntl.h"
#include "sys\types.h"
#include "sys\stat.h"
#include "stdio.h"
#include "bios.h"
#define CONF 0x43
#define DATAR 0x100
#define TRUE 1
#define DELAY 1000
#define RS232 0x14
char DIALSTRING[]="ATDT";
char ENDDIAL[]="\r";
char GETMODEMATT[]="AT";
unsigned COM=0;
CLIPPER ModemNum()
{
COM=_parni(1);
}
CLIPPER ModemDial()
{
union REGS inregs,outregs;
char ch, *sentstrg;
int i,k;
char ldata;
sentstrg=_parc(1);
inregs.h.ah=0;
inregs.x.dx=COM;
inregs.h.al=CONF;
int86(0x14,&inregs,&outregs);
for (i=0;DIALSTRING[i] !='\0';i++)
{
ldata=DIALSTRING[i];
inregs.h.ah=1;
inregs.x.dx=COM;
inregs.h.al=ldata;
int86(0x14,&inregs,&outregs);
for(k=0;k<DELAY;k++);
}
for (i=0;sentstrg[i] !='\0';i++)
{
ldata=sentstrg[i];
inregs.h.ah=1;
inregs.x.dx=COM;
inregs.h.al=ldata;
int86(0x14,&inregs,&outregs);
for(k=0;k<DELAY;k++);
}
for (i=0;ENDDIAL[i] !='\0';i++)
{
ldata=ENDDIAL[i];
inregs.h.ah=1;
inregs.x.dx=COM;
inregs.h.al=ldata;
int86(0x14,&inregs,&outregs);
for(k=0;k<DELAY;k++);
}
}
CLIPPER ModemStr()
{
union REGS inregs,outregs;
char ch, *sentstrg;
int i,k;
char ldata;
sentstrg=_parc(1);
inregs.h.ah=0;
inregs.x.dx=COM;
inregs.h.al=CONF;
int86(0x14,&inregs,&outregs);
for (i=0;GETMODEMATT[i] !='\0';i++)
{
ldata=GETMODEMATT[i];
inregs.h.ah=1;
inregs.x.dx=COM;
inregs.h.al=ldata;
int86(0x14,&inregs,&outregs);
for(k=0;k<DELAY;k++);
}
for (i=0;sentstrg[i] !='\0';i++)
{
ldata=sentstrg[i];
inregs.h.ah=1;
inregs.x.dx=COM;
inregs.h.al=ldata;
int86(0x14,&inregs,&outregs);
for(k=0;k<DELAY;k++);
}
for (i=0;ENDDIAL[i] !='\0';i++)
{
ldata=ENDDIAL[i];
inregs.h.ah=1;
inregs.x.dx=COM;
inregs.h.al=ldata;
int86(0x14,&inregs,&outregs);
for(k=0;k<DELAY;k++);
}
}
CLIPPER ModemStat()
{
int ch_hit;
char *mstatus="NO STATUS";
ch_hit=0xff & _bios_serialcom(_COM_RECEIVE, COM, 0);
switch(ch_hit) {
case 48: mstatus="OK"; break;
case 49: mstatus="CONNECT";break;
case 50: mstatus="RING";break;
case 51: mstatus="NO CARRIER";break;
case 52: mstatus="ERROR"; break;
case 53: mstatus="CONNECT 1200";break;
case 54: mstatus="NO DIALTONE";break;
case 55: mstatus="BUSY";break;
case 56: mstatus="NO ANSWER";break;
}
_retc(mstatus);
}
CLIPPER ModemInit()
{
unsigned data;
int i;
switch(_parni(1)) {
case 110: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_110);break;
case 300: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_300);break;
case 1200: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_1200);break;
case 2400: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_2400);break;
case 9600: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_9600);break;
}
_bios_serialcom(_COM_INIT, COM, data);
}